{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## _*H2 energy plot computed using ExcitationPreserving*_\n",
    "\n",
    "This notebook demonstrates using Qiskit Nature to plot graphs of the ground state energy of the Hydrogen (H2) molecule over a range of inter-atomic distances using VQE and ExcitationPreserving. It is compared to the same energies as computed by the NumPyMinimumEigensolver. `ExcitationPreserving` is a particle preserving variational form and should be used in conjunction with operator `jordan_wigner mapping` and `HarteeFock` initial state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "from qiskit_nature.second_q.drivers import PySCFDriver\n",
    "from qiskit_nature.second_q.formats import MoleculeInfo\n",
    "from qiskit_nature.second_q.mappers import JordanWignerMapper\n",
    "from qiskit_nature.second_q.algorithms import GroundStateEigensolver\n",
    "\n",
    "from qiskit_algorithms import NumPyMinimumEigensolver\n",
    "\n",
    "from qiskit_algorithms.optimizers import SLSQP\n",
    "\n",
    "from qiskit_nature.second_q.circuit.library import HartreeFock, UCCSD\n",
    "from qiskit_algorithms import VQE\n",
    "\n",
    "from qiskit.circuit.library import ExcitationPreserving\n",
    "from qiskit.primitives import Estimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "distances  = [0.5 + 0.025*x  for x in range(0, 20)]\n",
    "\n",
    "def compute_energies(algorithm, distances):\n",
    "    print(f'{algorithm}, processing step __', end='')\n",
    "\n",
    "    energies = []\n",
    "    hf_energies = []\n",
    "    estimator = Estimator()\n",
    "\n",
    "    for i, d in enumerate(distances):\n",
    "        print('\\b\\b{:2d}'.format(i), end='', flush=True)\n",
    "\n",
    "        info = MoleculeInfo([\"H\", \"H\"], [(0.0, 0.0, 0.0), (0.0, 0.0, d)])\n",
    "        driver = PySCFDriver.from_molecule(info, basis=\"sto3g\")\n",
    "        molecule = driver.run()\n",
    "        hamiltonian = molecule.hamiltonian.second_q_op()\n",
    "        mapper = JordanWignerMapper()\n",
    "        tapered_mapper = molecule.get_tapered_mapper(mapper)\n",
    "        qubit_op = tapered_mapper.map(hamiltonian)\n",
    "\n",
    "        if algorithm == 'NumPyMinimumEigensolver':\n",
    "            algo = NumPyMinimumEigensolver()\n",
    "            algo.filter_criterion = molecule.get_default_filter_criterion()\n",
    "            solver = GroundStateEigensolver(mapper, algo)\n",
    "            result = solver.solve(molecule)\n",
    "            hf_energies.append(result.hartree_fock_energy)\n",
    "            energies.append(result.total_energies[0])\n",
    "\n",
    "        elif algorithm == 'VQE':\n",
    "            optimizer = SLSQP(maxiter=10000, ftol=1e-9)\n",
    "            ansatz = ExcitationPreserving(4, reps=5) # https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.ExcitationPreserving for all parameters\n",
    "            vqe = VQE(estimator, ansatz, optimizer)\n",
    "            algo = GroundStateEigensolver(tapered_mapper, vqe)\n",
    "            result = algo.solve(molecule)\n",
    "            energies.append(result.total_energies[0])\n",
    "\n",
    "    print(' --- complete')\n",
    "    return hf_energies, energies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumPyMinimumEigensolver, processing step 19 --- complete\n",
      "VQE, processing step 19 --- complete\n"
     ]
    }
   ],
   "source": [
    "hf_energies, npme_energies = compute_energies('NumPyMinimumEigensolver', distances)\n",
    "_, vqe_energies = compute_energies('VQE', distances)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f2460032110>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.plot(distances, hf_energies, label='Hartree-Fock')\n",
    "pylab.plot(distances, npme_energies, label='NumPyMinimumEigensolver')\n",
    "pylab.plot(distances, vqe_energies, label='VQE')\n",
    "pylab.xlabel('Interatomic distance')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('NaH Ground State Energy')\n",
    "pylab.legend(loc='upper right')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "HF bond distance: 0.70 A, energy: -1.117 Ha\n",
      "VQE bond distance: 0.70 A, energy: -1.117 Ha\n",
      "NumpyMinimumEigensolver bond distance: 0.72 A, energy: -1.137 Ha\n"
     ]
    }
   ],
   "source": [
    "print(f\"\"\"HF bond distance: {distances[hf_energies.index(min(hf_energies))]:.2f} A, energy: {min(hf_energies):.3f} Ha\n",
    "VQE bond distance: {distances[vqe_energies.index(min(vqe_energies))]:.2f} A, energy: {min(vqe_energies):.3f} Ha\n",
    "NumpyMinimumEigensolver bond distance: {distances[npme_energies.index(min(npme_energies))]:.2f} A, energy: {min(npme_energies):.3f} Ha\"\"\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "qiskit==1.1.0\n",
      "qiskit-aer==0.14.2\n",
      "qiskit-algorithms==0.3.0\n",
      "qiskit-ibm-runtime==0.25.0\n",
      "qiskit-machine-learning==0.7.2\n",
      "qiskit-nature==0.7.2\n",
      "qiskit-nature-pyscf==0.4.0\n",
      "qiskit-qasm3-import==0.5.0\n",
      "qiskit-transpiler-service==0.4.5\n"
     ]
    }
   ],
   "source": [
    "! pip freeze | grep qiskit"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
